package entity

import (
	"github.com/gogf/gf/v2/os/gtime"
)

type User struct {
	Id                    int64       `json:"id" q:"-" dc:"ID"`                                 //ID
	TenantCode            string      `json:"tenantCode" q:"EQ" dc:"租户编码"`                      //租户编码
	LoginName             string      `json:"loginName" q:"LIKE" dc:"用户名"`                      //用户名
	Email                 string      `json:"email" q:"EQ" dc:"邮箱"`                             //邮箱
	HashPassword          string      `json:"hashPassword" q:"EQ" dc:"Hash后的用户密码"`              //Hash后的用户密码
	RealName              string      `json:"realName" q:"LIKE" dc:"用户真实姓名"`                    //用户真实姓名
	Phone                 string      `json:"phone" q:"EQ" dc:"手机号码"`                           //手机号码
	ImageUrl              string      `json:"imageUrl" q:"EQ" dc:"用户头像地址"`                      //用户头像地址
	ProfilePhoto          string      `json:"profilePhoto" q:"EQ" dc:"用户二进制头像"`                 //用户二进制头像
	Language              string      `json:"language" q:"EQ" dc:"语言"`                          //语言
	TimeZone              string      `json:"timeZone" q:"EQ" dc:"时区"`                          //时区
	LastPasswordUpdatedAt *gtime.Time `json:"lastPasswordUpdatedAt" q:"BETWEEN" dc:"上一次密码更新时间"` //上一次密码更新时间
	LastLoginAt           *gtime.Time `json:"lastLoginAt" q:"BETWEEN" dc:"上一次登陆时间"`             //上一次登陆时间
	IsLocked              int8        `json:"isLocked" q:"EQ" dc:"是否锁定账户"`                      //是否锁定账户
	IsAdmin               int8        `json:"isAdmin" q:"EQ" dc:"是否为管理员用户。1表示是，0表示不是"`          //是否为管理员用户。1表示是，0表示不是
	LockedUntilAt         *gtime.Time `json:"lockedUntilAt" q:"BETWEEN" dc:"锁定账户截止时间"`          //锁定账户截止时间
	PasswordAttempt       int8        `json:"passwordAttempt" q:"EQ" dc:"密码输错累积次数"`             //密码输错累积次数
	UserType              string      `json:"userType" q:"EQ" dc:"用户类型(P/C)，平台用户/C端用户，默认P"`     //用户类型(P/C)，平台用户/C端用户，默认P
	Creator               string      `json:"creator" q:"EQ" dc:"创建人"`                          //创建人
	CreatorId             string      `json:"creatorId" q:"EQ" dc:"创建人id"`                      //创建人id
	CreateDate            *gtime.Time `json:"createDate" q:"BETWEEN" dc:"创建时间"`                 //创建时间
	Modifier              string      `json:"modifier" q:"EQ" dc:"修改者"`                         //修改者
	ModifierId            string      `json:"modifierId" q:"EQ" dc:"修改者id"`                     //修改者id
	ModifyDate            *gtime.Time `json:"modifyDate" q:"BETWEEN" dc:"修改时间"`                 //修改时间
	State                 int8        `json:"state" q:"-" dc:"状态（1正常 0停用）"`                     //状态（1正常 0停用）
	VersionNumber         int64       `json:"versionNumber" q:"-" dc:"版本号"`                     //版本号
}
